Θα πρέπει να χρησιμοποιήσεις @param1,@param2,@param3 αλλά επειδή τυπικά δεν θα ξέρεις πόσα items θα έχεις στην IN λίστα, θα πρέπει να κατασκευάσεις δυναμικά το statement και τα command parameters. Κάτι σαν το παρακάτω:
Function GetCommand(ByVal strSQL As String, ByVal values As String()) As SqlCommand
Dim params As String() = values.Select(Function(s, i) "@param" & i.ToString()).ToArray()
Dim sqlCmd As SqlCommand = New SqlCommand(String.Format(strSQL, String.Join(",", params)))
For i As Integer = 0 To params.Length - 1
sqlCmd.Parameters.AddWithValue(params(i), values(i))
Next
Return sqlCmd
End Function
Οπότε, μετά χρησιμοποιείς το function κάπως έτσι:
Dim strSQL As String = "SELECT * FROM Orders WHERE OrderId IN ({0})"
Dim values As String() = New String() {"value1", "value2", "value3", "value4", "value5"}
Dim cmd As SqlCommand = GetCommand(strSQL, values)
Vir prudens non contra ventum mingit